package com.layui.ad.utils;

import lombok.Data;

import java.util.HashMap;

@Data
public class JsonResult extends HashMap {

//    private Integer code;
//    //操作结果 true|false
//    private boolean success;
//    // 响应业务状态
//    private Integer status;
//
//    // 响应消息
//    private String msg;
//
//    // 响应中的数据
//    private Object data;

    public JsonResult() {
        super.put("code",0);
    }

    public static JsonResult ok() {
        return new JsonResult().setOk();
    }

    public static JsonResult ok(String msg) {
        return new JsonResult().setOk().set("msg", msg);
    }

    public static JsonResult ok(Object key, Object value) {
        return ok().set(key, value);
    }
    public static JsonResult ok(Object value) {
        return ok().set("data", value);
    }

    public static JsonResult ok(String msg,Object value,Long count){
        return ok().set("msg",msg).set("data",value).set("count",count);
    }

    public static JsonResult fail() {
        return new JsonResult().setFail();
    }

    public static JsonResult fail(String msg) {
        return new JsonResult().setFail().set("msg", msg);
    }
    public static JsonResult fail(Object value) {
        return fail().set("data", value);
    }
    public static JsonResult fail(Object key, Object value) {
        return fail().set(key, value);
    }
    public static JsonResult create() {
        return new JsonResult();
    }

    public static JsonResult create(Object key, Object value) {
        return new JsonResult().set(key, value);
    }
    public JsonResult setOk(){
        super.put("success",true);
        super.put("msg","操作成功");
        return this;
    }

    public JsonResult setFail(){
        super.put("success",false);
        super.put("msg","操作失败");
        super.put("code",401);
        return this;
    }


    public JsonResult set(Object key, Object value) {
        super.put(key, value);
        return this;
    }
//
//    public JsonResult set(Map map) {
//        super.putAll(map);
//        return this;
//    }

//    public JsonResult set(JsonResult ret) {
//        super.putAll(ret);
//        return this;
//    }
//
//    public Integer getInt(Object key){
//        return (Integer) get(key);
//    }
//
//    public boolean isOk(){
//        Integer code = (Integer) getInt(STATUS);
//        if(code != null && code == 200){
//            return true;
//        }else{
//            return false;
//        }
//    }
//
//    public boolean isFail(){
//        Integer code = (Integer) getInt(STATUS);
//        if(code !=200){
//            return true;
//        }else{
//            return false;
//        }
//    }
}
